interface GeneratedTypeLiteralInterface_5 {
  name: string;
}

interface GeneratedTypeLiteralInterface_4 {
  name: string;
  password: string;
  domain: GeneratedTypeLiteralInterface_5;
}

interface GeneratedTypeLiteralInterface_3 {
  user: GeneratedTypeLiteralInterface_4;
}

interface GeneratedTypeLiteralInterface_2 {
  methods: string[]; // 一般是 ['password']
  password: GeneratedTypeLiteralInterface_3;
}

interface GeneratedTypeLiteralInterface_7 {
  name: string;
}

interface GeneratedTypeLiteralInterface_6 {
  project: GeneratedTypeLiteralInterface_7;
}

interface GeneratedTypeLiteralInterface_1 {
  identity: GeneratedTypeLiteralInterface_2;
  scope: GeneratedTypeLiteralInterface_6;
}

export interface AuthRequest {
  auth: GeneratedTypeLiteralInterface_1;
}
export interface TokenResponse {
  token: TokenInfo;
}

interface TokenInfo {
  expires_at: string;
  methods: string[];
  catalog: ServiceCatalog[];
  roles: Role[];
  project: ProjectInfo;
  issued_at: string;
  user: UserInfo;
}

interface ServiceCatalog {
  endpoints: Endpoint[];
  id: string;
  name: string;
  type: string;
}

interface Endpoint {
  id: string;
  interface: string;
  region: string;
  region_id: string;
  url: string;
}

interface Role {
  id: string;
  name: string;
}

interface ProjectInfo {
  domain: DomainInfo;
  id: string;
  name: string;
}

interface UserInfo {
  domain: DomainInfo;
  id: string;
  name: string;
  password_expires_at: string;
}

interface DomainInfo {
  id: string;
  name: string;
}